package com.atguigu.tingshu.album.config;

import lombok.Data;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix="minio") //读取节点
@Data
public class MinioConstantProperties implements InitializingBean {


 public static String ENDPOINT_URL;
 public static String ACCESS_KEY;
 public static String SECRET_KEY;
 public static String BUCKET_NAME;

    // 对文件上传进行优化
    private String endpointUrl;
    private String accessKey;
    private String secretKey;
    private String bucketName;


    // 1. 利用 SpringBean 的生命周期方法 在容器初始化当前组件对象设置属性值以后
    // 将成员属性值复制给静态属性  根据类获取属性
    // 容器对象属性值设置以后调用
    // *InitializingBean**：Spring 生命周期接口，确保在 Bean 属性注入完成后执行 afterPropertiesSet()。
    //非静态 → 静态：将动态注入的成员变量值赋给静态常量，使配置全局可用。
    @Override
    public void afterPropertiesSet() throws Exception {

        ENDPOINT_URL = this.endpointUrl;
        ACCESS_KEY = this.accessKey;
        SECRET_KEY = this.secretKey;
        BUCKET_NAME = this.bucketName;
    }

}
